草庐IT

SQLite 事务(Transaction)

全部标签

java - get 在没有 Activity 事务的情况下无效 - hibernate 5

即使我已手动启动交易,我仍不断收到此错误。Sessionsession=HibernateUtil.getSessionFactory().getCurrentSession();transaction=session.getTransaction();if(!transaction.isActive()){transaction=session.beginTransaction();}accessToken=session.get(OAuthAccessToken.class,token);hibernate.cfg.xmltrue520300503000org.hibernate.

java - Spring 事务注解

我正试图更好地处理Spring的@Transactional属性的使用。我知道它基本上将标记为@Transactional的方法的内容包装在事务中。将服务/业务层方法标记为事务性方法是否合适,而不是像我在此处所做的那样将实际的DAO方法标记为事务性方法?服务实现publicclassUserServiceImplimplementsUserServiceInt{@AutowiredprivateUserServiceDAOserviceDAO;@OverridepublicUsergetUser(intid){returnserviceDAO.getUser(id);}@Overrid

java - Spring JPA/Hibernate 事务强制插入而不是更新

已编辑。虽然扩展基础存储库类并添加插入方法会起作用,但更优雅的解决方案似乎是在实体中实现Persistable。查看可能的解决方案2我正在使用springframework.data.jpa创建一个服务,使用JpaTransactionManager将Hibernate作为ORM。遵循此处教程的基础。http://www.petrikainulainen.net/spring-data-jpa-tutorial/我的实体存储库扩展org.springframework.data.repository.CrudRepository我正在使用一个遗留数据库,它使用有意义的主键而不是自动生成

java - 如果不回滚 Hibernate 中的事务会发生什么?

我读到的关于Hibernate的所有内容都指出,当发生错误时,您必须回滚事务并关闭session,并且以下代码(取自Hibernate的文档)通常有一些变体作为示例:Sessionsess=factory.openSession();Transactiontx=null;try{tx=sess.beginTransaction();//dosomework...tx.commit();}catch(RuntimeExceptione){if(tx!=null)tx.rollback();throwe;//ordisplayerrormessage}finally{sess.close(

java - Apache 事务 :write file transactionally - how to use resourceId

如果有人实现了事务写入文件,请帮助我。相关主题已在较早的线程(transactionalwrite)中讨论过。用例如下:如果写入日志文件失败,应回滚相应的数据库事务。因此写入文件应该以事务方式执行。我选择了ApacheCommonsTransaction库。有问题,这不会让我更进一步,因为没有找到合适的文档或示例。我已经创建了FileResourceManager实例:FileResourceManagerfrm=newFileResourceManager("c:\cur","c:\cur",true,logger);据我了解ApacheCommonsTransactiontutor

java - 连接到 JDBC 事务的开始

我有一个连接到Postgres9.6数据库的SpringBootwebapp。我使用Spring的JdbcTemplate来执行SQL语句。我数据库中的每个表都有用于INSERT、CREATE和DELETE语句的触发器。这些触发器将受影响的行复制到历史表中。我希望触发器还保存进行更改的用户的应用程序用户ID。根据https://stackoverflow.com/a/13172964/2591231我可以通过让应用程序在每个事务开始时将当前用户ID插入临时表并从临时表中读取触发器来实现我的目标。在其他几个地方提到的类似方法正在执行:SETLOCALapplication_name="m

java - Spring JMS 监听器中的事务管理

我有一个正在监听队列的springJMS监听器。消息到达输入队列后,会对消息进行一定的处理,并将消息放入多个其他队列中进行进一步处理(我们可以将这些其他队列称为输出队列)。当它发布到其他输出队列时,如果将消息发布到输出队列之一可能由于任何原因而失败,我想确保在失败之前完成的输出队列的其他发布被回滚。基本上我想确保它是原子操作。监听器/容器上是否有任何注释/配置可用于在单个事务中实现此目的?这是我正在使用的配置看起来JMS模板和监听器容器都引用同一个连接工厂bean(jmsConnectionFactory) 最佳答案 在监听器容器上

java - 多个事务不是应该与 em.getTransaction() 一致吗?

当我执行时:publicvoidbeginTransaction(){em.getTransaction().begin();}在以相同方式启动一个Activity事务后,我得到以下异常:ExceptionDescription:Transactioniscurrentlyactivejava.lang.IllegalStateException:ExceptionDescription:Transactioniscurrentlyactiveatorg.eclipse.persistence.internal.jpa.transaction.EntityTransactionImpl

java - 在 JBoss + Hibernate 中防止事务回滚

我们有一个在JBoss5.1上运行的Java应用程序,在某些情况下,我们需要防止事务关闭,以防某些底层方法抛出JDBCException。我们有一个如下所示的EJB方法@PersistenceContext(unitName="bar")publicEntityManagerem;publicObjectfoo(){try{insert(stuff);returnstuff;}(catchPersistenceExceptionp){Objectt=load(id);if(t!=null){find(t);returnt;}}}如果insert由于PersistenceExceptio

java - EntityManager.flush() 在 Java Web 服务中提交事务

编辑:感谢大家的回答,但问题出在我的数据源配置上,它实际上处于自动提交模式。参见myanswerbelow了解详情。EntityManager.flush()的Javadoc方法并在Google中搜索它似乎表明flush方法只将挂起的语句发送到数据库并且不提交事务。但是我创建的一个简单的测试Web服务(在Java7、Oracle11gR2、JBoss7.1中,Web服务被打包为一个jar文件)似乎表明并非如此:这是表创建脚本:CREATETABLEtest(idINTEGERNOTNULL,nameVARCHAR2(20),CONSTRAINTtest_pkPRIMARYKEY("ID